package com.heatingcharge.param;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * Description: heating_charge_server
 * User: Devin
 * Date: 2019-11-08
 * Time: 10:30
 */
@Data
public class ChargeInfoParam {
    /**
     * 自动增加
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @NotNull(message = "年度信息ID不能为空")
    @Min(value =1,message = "年度信息ID不能小于１")
    private Integer chargePayableId;

    @NotNull(message = "附加费用不能为空")
    @Min(value =0,message = "附加费用不能小于0")
    private BigDecimal additional;

    @NotNull(message = "减免金额不能为空")
    @Min(value =0,message = "减免金额不能小于0")
    private BigDecimal reduction;

    @NotNull(message = "补贴金额不能为空")
    @Min(value =0,message = "补贴金额不能小于0")
    private BigDecimal subsidy;

    @NotNull(message = "优惠金额不能为空")
    @Min(value =0,message = "优惠金额不能小于0")
    private BigDecimal discount;

    private BigDecimal lateFee;

    @NotNull(message = "实际应缴金额不能为空")
    @Min(value =0,message = "实际应缴金额不能小于0")
    private BigDecimal actualPayable;

    @NotNull(message = "实际缴费金额不能为空")
    @Min(value =0,message = "实际缴费金额不能小于0")
    private BigDecimal actual;
//    private Integer chargeState;

    /**
     * 缴费方式
     */
    @NotNull(message = "缴费方式不能为空")
    private Integer chargeModeId;

    /**
     * 收费方式 1:坐收 2:走收
     */
    private Integer chargeSource;

    /**
     * 缴费时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date chargeDate;

    /**
     * 订单号（针对支付宝 微信支付）
     */
    private String orderNo;

    private String remark;
}
